Components Explained (Functional vs Class)

React Components Explained — Functional vs Class Component (বাংলায় বিস্তারিত)

React-এর মূল ভিত্তি হলো Component। প্রতিটি UI অংশকে ছোট, পুনর্ব্যবহারযোগ্য (Reusable) component হিসেবে তৈরি করা যায়। একটি Component মানে হচ্ছে—একটি ফাংশন বা ক্লাস যা কিছু UI রিটার্ন করে। React-এ দুই ধরনের Component দেখা যায়:

  • Functional Components (আধুনিক, সহজ এবং সর্বাধিক ব্যবহৃত)
  • Class Components (পুরোনো স্টাইল, এখন কম ব্যবহার হয়)

এখানে আমরা দুই ধরনের Component-এর বিস্তারিত ব্যাখ্যা, পার্থক্য, উদাহরণ এবং Best Practice আলোচনা করবো।


Component কী?

Component হলো একটি ছোট UI Block যা:

  • নিজস্ব কোড ধারণ করে
  • নিজস্ব UI রেন্ডার করে
  • Props গ্রহণ করতে পারে
  • State ধরে রাখতে পারে (Functional + Hooks)
  • Reusable (বারবার ব্যবহার করা যায়)

উদাহরণ: Navigation Bar, Button, Card, Product Item ইত্যাদি সবই Component।


1. Functional Component — আধুনিক React-এর স্ট্যান্ডার্ড

Functional Component হলো একটি সাধারণ JavaScript function, যা JSX রিটার্ন করে।

Functional Component Example:


function Welcome(props) {
  return (
    <div>
      <h2>হ্যালো, {props.name}!</h2>
      <p>React Functional Component-এ স্বাগতম।</p>
    </div>
  );
}

export default Welcome;

কেন Functional Component বেশি জনপ্রিয়?

  • কোড ছোট ও পরিষ্কার
  • Hooks ব্যবহার করা যায় (useState, useEffect ইত্যাদি)
  • ফাস্ট পারফরম্যান্স
  • কম Boilerplate কোড
  • Class Component-এর lifecycle Method-এর ঝামেলা নেই

React 16.8 থেকে Hooks আসার পর Functional Component ১০০% শক্তিশালী হয়ে গেছে, তাই এখন এটিই industry standard।


2. Class Component — পুরোনো কিন্তু এখনও বুঝা প্রয়োজন

Class Component হলো একটি JavaScript Class যা React.Component কে extend করে।

Class Component Example:


import React, { Component } from "react";

class Welcome extends Component {
  render() {
    return (
      <div>
        <h2>হ্যালো, {this.props.name}!</h2>
        <p>React Class Component Example</p>
      </div>
    );
  }
}

export default Welcome;

Class Component-এর বৈশিষ্ট্য:

  • this keyword ব্যবহারের প্রয়োজন
  • Lifecycle Methods ব্যবহার করা হয়
  • Constructor দিয়ে state initialize করতে হয়
  • Hooks ব্যবহার করা যায় না

Class Component-এ State Example:


class Counter extends Component {
  constructor() {
    super();
    this.state = { count: 0 };
  }

  increment = () => {
    this.setState({ count: this.state.count + 1 });
  };

  render() {
    return (
      <div>
        <h3>Count: {this.state.count}</h3>
        <button onClick={this.increment}>Increase</button>
      </div>
    );
  }
}

Functional vs Class Component — Side-by-Side Comparison

Feature Functional Component Class Component
কোডের ধরন JavaScript function ES6 class
State management Hooks (useState, useReducer) this.state, setState()
Lifecycle methods useEffect দিয়ে হ্যান্ডেল componentDidMount, componentDidUpdate
কোডের জটিলতা সহজ ও ছোট বেশি boilerplate
Performance উন্নত তুলনামূলক কম
Popularity অত্যন্ত বেশি কম (industry-তে ধীরে ধীরে বাদ পড়ছে)

Real-Life Example: একই কাজ Functional এবং Class Component-এ

Functional Version


function Message() {
  const [text, setText] = useState("Hello!");

  return (
    <div>
      <h3>{text}</h3>
      <button onClick={() => setText("Welcome to React!")}>
        Change Message
      </button>
    </div>
  );
}

Class Version


class Message extends Component {
  constructor() {
    super();
    this.state = { text: "Hello!" };
  }

  change = () => {
    this.setState({ text: "Welcome to React!" });
  };

  render() {
    return (
      <div>
        <h3>{this.state.text}</h3>
        <button onClick={this.change}>Change Message</button>
      </div>
    );
  }
}

দেখতে পাচ্ছেন, Functional Component অনেক ছোট এবং সহজ।


React-এর ভবিষ্যৎ — কোনটি শিখবেন?

  • Functional Component → অবশ্যই শিখতে হবে (Modern React এর ভিত্তি)
  • Class Component → Concept হিসেবে জানা ভালো, কিন্তু প্রয়োজন কম

Industry-তে এখন সবকিছুই Hooks + Functional Component ভিত্তিক, তাই নতুনদের Functional Component দিয়েই React শেখা উচিত।


Best Practices (সেরা অভ্যাস)

  • সর্বদা Functional Component ব্যবহার করুন
  • Class Component শুধু পুরোনো কোডবেস বুঝতে শিখুন
  • Component ছোট রাখুন — Single Responsibility Principle অনুসরণ করুন
  • Reusable component ডিজাইন করুন (button, card, input ইত্যাদি)

উপসংহার

React-এর Component System পুরো UI-কে ভাগ করে ছোট manageable অংশে ভাগ করে। Functional Component হচ্ছে React-এর বর্তমান ও ভবিষ্যৎ — যা Hooks-এর মাধ্যমে আরও শক্তিশালী হয়েছে। যদি আপনি React শিখতে চান, তাহলে Functional Components, Props, State এবং Hooks শিখলেই ৮০% React আপনার আয়ত্তে থাকবে।

এই কনটেন্ট শিক্ষার্থীদের জন্য খুব সহজ করে লেখা হয়েছে। চাইলে আমি প্রতিটি টপিকের আলাদা PDF বা আরও উদাহরণ সহ বিস্তারিত তৈরি করে দিতে পারি।

👼 Quiz
/

লোড হচ্ছে...